package com.game.optimize.service;

import com.game.optimize.domain.BaseChess;
import com.game.optimize.domain.ChessBord;

/**
 * 棋盘服务类
 *
 * @author Nessis
 * @since 2023-03-02 16:11
 */
public interface ChessBordService {
    /**
     * 获取本次行动的棋子
     *
     * @param x 起始位置x轴
     * @param y 起始位置y轴
     * @return 棋子对象
     */
    BaseChess actionChess(int x, int y);

    /**
     * 判断是否需要翻转，如果需要保存翻转后的坐标到棋子中
     *
     * @param baseChess 棋子
     * @param toX       目的坐标x
     * @param toY       目的坐标y
     * @return true-翻转、false-不需要翻转
     */
    boolean overturn(BaseChess baseChess, int toX, int toY);

    /**
     * 判断棋子是吃棋还是走棋
     *
     * @param baseChess 棋子
     * @return true-走棋、false-吃棋
     */
    boolean moveOrEat(BaseChess baseChess);
}
